iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Mobile Development

「淺入 Android Studio 開發環境」—— 工具與插件的高效使用系列 第 13

# DAY13 探索 Android 中的 Dialog:從基礎到自定義 (上)

  • 分享至 

  • xImage
  •  

在 Android 開發中,Dialog 是一個非常常用的元件。無論是顯示警告訊息、確認對話框,還是進度條,Dialog 都提供了一個方便且直觀的方式與使用者互動。本篇文章將帶你了解 Android 中 Dialog 的基本用法,以及如何創建自定義的 Dialog

什麼是 Dialog?

Dialog 是一種提示窗,通常用於顯示一些臨時性的信息,並且需要用戶採取操作或輸入內容。例如:提示用戶是否刪除文件、顯示加載進度等。它們通常會出現在應用的最上層,阻止用戶與其他界面進行交互,直到對話框被關閉。

基本的 Dialog 類型

Android 提供了幾種常見的 Dialog,例如:

  1. AlertDialog:最常見的對話框,包含標題、訊息和操作按鈕。
  2. DatePickerDialog:日期選擇對話框。
  3. TimePickerDialog:時間選擇對話框。
  4. ProgressDialog(已過時):用於顯示進度的對話框。新版建議使用 ProgressBar。

創建 AlertDialog

首先,我們來看一下如何創建一個基本的 AlertDialog。這種對話框可以顯示標題、訊息,並包含兩個按鈕。

Context context = this;
new AlertDialog.Builder(context)
        .setTitle("確認")
        .setMessage("你確定要刪除這個文件嗎?")
        .setPositiveButton("確定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 處理確定按鈕點擊事件
            }
        })
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 處理取消按鈕點擊事件
                dialog.dismiss();
            }
        })
        .create()
        .show

在這段代碼中,我們創建了一個 AlertDialog,其中包含標題、訊息,還有兩個按鈕(確定、取消)。通過 AlertDialog.Builder 我們可以很容易地配置對話框的內容和按鈕。
成果圖如下:
image

創建 DatePickerDialog 和 TimePickerDialog

除了 AlertDialog,我們還可以使用 DatePickerDialogTimePickerDialog 來讓用戶選擇日期和時間。
DatePickerDialog

        TextView show_date ;
        Context context= this;

        show_date = findViewById(R.id.show_date_tv);
        final Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        // 創建日期選擇對話框
        DatePickerDialog datePickerDialog = new DatePickerDialog(context,
                new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int day) {
                        // 當日期選擇後,這裡可以處理選擇的日期
                        // 比如顯示在TextView或者儲存到變量中
                        String selectedDate = year + "/" + (month + 1) + "/" + day;
                        // 假設有個TextView顯示選中的日期
                        show_date.setText(selectedDate);
                    }
                }, year, month, day);

        // 顯示日期選擇對話框
        datePickerDialog.show();

image
image

TimePickerDialog

TextView show_time;
        show_time = findViewById(R.id.show_time_tv);
        Context context = this;

        Calendar calendar = Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);

        TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                // 顯示選擇的時間
                String selectedTime = String.format("%02d:%02d", hourOfDay, minute);
                show_time.setText(selectedTime);
            }
        }, hour, minute, true); // true 表示 24 小時制

        // 顯示 TimePickerDialog
        timePickerDialog.show();

image

image

總結

在本篇文章中,我們探索了 Android 中 Dialog 的基本用法,包括如何創建和使用不同類型的對話框。Dialog 是一個非常實用的 UI 元件,能夠有效地與用戶進行交互。在接下來的文章中,我們將進一步探索如何自定義 Dialog。


上一篇
# DAY12 RatingBar 和 View 元件介紹
下一篇
# DAY14 探索 Android 中的 Dialog:從基礎到自定義 (下)
系列文
「淺入 Android Studio 開發環境」—— 工具與插件的高效使用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言